/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo.DAO;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.conexion.Conexion;
import modelo.vo.Puja;
import modelo.vo.Subasta;
import modelo.vo.Usuario;

/**
 *
 * @author carlos
 */
public class PujaDAO extends AbstractDAO
{

     private Puja puja;

    public PujaDAO(Puja puja) {
        this.puja = puja;
        this.conexion=new Conexion();
    }
    
    
    
    @Override
    public void insertar() 
    {
        String query="INSERT INTO `subasta`.`puja` (`NOMBREPRODUCRO`, `NOMBRE`, `CANTIDAD`) VALUES ('"+puja.getSubasta().getNombreProducto()+"', '"+puja.getUsuario().getUsuario()+"', '"+puja.getCantidad()+"');";
        conexion.ejecutarQuery(query);
    }

    @Override
    public void editar() 
    {
        String query="UPDATE `subasta`.`puja` SET `NOMBREPRODUCRO`='"+puja.getSubasta().getEstado()+"', `NOMBRE`='"+puja.getUsuario().getUsuario()+"', `CANTIDAD`='"+puja.getCantidad()+"' WHERE `CODPUJA`='"+puja.getCodPuja()+"';";
        conexion.ejecutarQuery(query);
    }

    @Override
    public void eliminar() {
        String query="DELETE FROM subasta.puja WHERE `CODPUJA`='"+puja.getCodPuja()+"';";
        conexion.ejecutarQuery(query);
        //DELETE FROM `puja`.`puja` WHERE `NOMBRE`='cpu';

    }

    @Override
    public ArrayList lista() 
    {
        String query="SELECT * FROM subasta.puja;";
        ResultSet rs=conexion.ejecutarConsulta(query);
        ArrayList lista=new ArrayList();
        try {
            while(rs.next())
            {
               Puja puja= new Puja(rs.getInt(1),rs.getFloat(4));
               Subasta subasta=(new SubastaDAO(null)).buscar(rs.getString(2));
               Usuario usuario=(new UsuarioDAO(null)).buscar(rs.getString(3));
               puja.setSubasta(subasta);
               puja.setUsuario(usuario);
               
               lista.add(puja);
            }
        } catch (SQLException ex) {
            Logger.getLogger(PujaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return lista;
    }

    public Puja getPuja() {
        return puja;
    }

    
}
